#pragma once
#ifndef __HWINDEF_H__
#define __HWINDEF_H__ 1

#pragma warning(disable:4996)

#define OEMRESOURCE

#include <SDKDDKVer.h>

#define SECURITY_WIN32 
// Windows Header Files:
#include <windows.h>
#include <Windowsx.h>
#include <CommCtrl.h>
#include <Security.h>
#include <d2d1.h>
#include <dwrite.h>
#include <wincodec.h>
#include <Shobjidl.h>
#include <mshtml.h>
#include <OCIdl.h>
#include <OleDlg.h>

#include <algorithm>
#include <array>
#include <atomic>
#include <string>
#include <utility>
#include <memory>
#include <map>
#include <set>
#include <cmath>
#include <cfloat>
#include <iosfwd>

#include <wchar.h>

#include <boost/signals2/signal.hpp>

#ifdef HARLINNWINDOWS_EXPORTS
#define HWIN_EXPORT __declspec(dllexport)
#else
#define HWIN_EXPORT __declspec(dllimport)
#pragma comment(lib,"HarlinnWindowsLib")
#endif

namespace harlinn
{
    namespace windows
    {
        template<typename T>
        inline bool InRange(const T& value,const T& minvalue, const T& maxValue)
        {
            return value >= minValue && value < maxValue;
        }

        template<typename T>
        inline bool NotInRange(const T& value,const T& minvalue, const T& maxValue)
        {
            return value < minValue && value >= maxValue;
        }


        class String;

        enum class SeekOrigin
        {
            StartOfFile = 0,
            CurrentPosition = 1,
            EndOfFile = 2
        };

    };
};




#endif